Control bus for connection of electronic devices

ABSTRACT

A method and apparatus for a control bus for connection of electronic devices. An embodiment of a method includes coupling a transmitting device to a receiving device, including connecting a control bus between the transmitting device and the receiving device, with the control bus being a bi-directional, single-line bus. The method further includes obtaining control of the control bus for either the transmitting device or the receiving device, with the device obtaining control becoming an initiator and the other device becoming a follower. One or more control signals are converted to one or more data packets, with each of the one or more control signals representing one of multiple different types of control signals. The generated data packets are transmitted from the initiator to the follower via the control bus.

TECHNICAL FIELD

Embodiments of the invention generally relate to the field of electronic devices and, more particularly, to a method and apparatus for a control bus for connection of electronic devices.

BACKGROUND

Multiple electronic devices are increasingly connected together to communication date. In one example, entertainment and multi-media devices may be interconnected to transfer or share digital information. The connection of such devices generally requires some form of standard bus or interface to allow the devices to easily connect communicate with each other.

In one example, the HDMI™ (High-Definition Multimedia Interface) provides an interface that allows for the transfer of uncompressed digital high-definition video and audio, together with associated control signals. (HDMI is a trademark of HDMI Licensing, LLC) HDMI includes the High-Definition Multimedia Specification 1.3 (Hitachi, Ltd., Matsushita Electric Industrial Co., Ltd., Philips Consumer Electronics, International B. V., Silicon Image, Inc., Sony Corporation, Thomson Inc., and Toshiba Corporation) (Jun. 22, 2006), as well as earlier versions of HDMI. Multimedia devices may include any devices capable of providing, storing, or displaying multimedia data, including television monitors, cable and satellite set-top boxes, video players, including DVD (Digital Versatile Disk), HD (High-Definition) DVD, and Blu-Ray players, audio players, digital video recorders, and other similar devices.

However, the use of any interface may be affected by physical size of devices. For example, media devices may be portable or handheld. The use of an interface designed for a standard device may be difficult for smaller devices. In addition, there is physical limit on how many connections may be reasonably added to a smaller device. The addition of an interface in addition to, for example, a USB (Universal Serial Bus) connection to a device may result in excessive connections to the device, thus making it less likely that manufacturers will includes such an interface in manufactured device.

SUMMARY

A method and apparatus are provided for a control bus for connection of electronic devices.

In a first aspect of the invention, a method includes coupling a transmitting device to a receiving device. The coupling of the devices includes connecting a control bus between the transmitting device and the receiving device, the control bus being a bidirectional, single-line bus. Control of the control bus is obtained for either the transmitting device or the receiving device, with the device obtaining control becoming an initiator and the other device becoming a follower. One or more control signals are converted to one or more data packets, with each of the one or more control signals representing one of multiple different types of control signals. The generated data packets are transmitted from the initiator to the follower via the control bus.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements.

FIG. 1 is an illustration of an embodiment of a transmitting device coupled with a receiving device;

FIG. 2 is a flowchart to illustrate an embodiment of a process for providing control signals between a transmitting device and a receiving device;

FIG. 3 is an illustration of an arbitration process for a bi-directional, single-bit control bus;

FIG. 4 is an illustration of an embodiment of a mobile device coupled with a standard device via a control bus;

FIG. 5 is an illustration of an embodiment of a connection between two mobile devices;

FIG. 6 illustrates an embodiment of a cable that may be utilized to connect a transmitter and a receiver;

FIG. 7 is an illustration of an embodiment of cable signal assignments for transmitter and receiver;

FIG. 8 illustrates an embodiment of a data packet for transfer of control data; and

FIG. 9 is an illustration of the header and control fields utilized in an embodiment of a control data packet.

DETAILED DESCRIPTION

Embodiments of the invention are generally directed to a control bus for connection of electronic devices.

As used herein:

“Mobile device” means any mobile electronic device. The term “mobile device” includes, but is not limited to, a cellular telephone, smartphone, PDA (personal digital device), MP3 or other format music player, digital camera, video recorder, digital storage device, and other similar devices.

In some embodiments, a system provides an interface to connect a mobile device to other devices. In some embodiments, a mobile device utilizes a modified protocol to allow connection with other devices, which may utilize a standard protocol. In some embodiments, a connection between a mobile device and another device includes the merging of multiple control signals on to a single bus, where such control signals would have utilized multiple buses under the standard protocol. In some embodiments, a mobile transmitting device utilizing a modified protocol may be connectable with a dual mode receiving device, wherein the receiving device may receive data from either the mobile transmitting device or a standard transmitting device.

In a particular embodiment, data being transferred between devices may be multimedia data and associated commands, including HDMI data and commands. For example, a mobile device containing high-definition video data and related commands may be connected to a standard HDMI device (such as, for example, a television monitor). However, embodiments of the invention are not limited to any particular type of data or device. As used herein, HDMI-M is utilized here to indicate a mobile device utilizing a modified protocol. The HDMI-M device may include the use of USB (Universal Serial Bus) protocol data, utilizing USB-OTG (USB On-The-Go, a standard for portable devices that allows dual-mode operation in which a device may be connected to a personal computer or to another portable device). HDMI-E is utilized here to designate a dual-mode device that can be interfaced with a modified protocol mobile device or a standard protocol device.

In some embodiments, a link layer describes a method and protocol for sending and receiving data between two devices using a bi-directional, 1-bit (single wire) data line. In some embodiments, a translation layer will describe how standard control protocols may be mapped to the 1-bit line. In a particular embodiment in which an HDMI system is involved, the translation layer describes how CEC (Consumer Electronics Control), DDC I2C (Display Data Channel), and any other protocols may be mapped to the 1-bit data line. In HDMI, DDC is used for configuration and status exchange between a single source (a “source” being a device providing HDMI output) and a single “sink” (a sink being a device receiving an HDMI input). Further, CEC is an optional protocol that provides high-level control functions between all of the various audiovisual products in a user's environment. In an embodiment, a “private channel” of the control bus may be used to carry out housekeeping tasks between the transmitter and the receiver. The private channel also used as a communications channel between the transmitter and receiver firmware.

In some embodiments, the link layer is a point-to-point bi-directional bus using “bi-phase mark encoding” to transmit bits. In bi-phase mark encoding, each bit of data is represented by two logical states. The first state of a symbol is always different from the last state of the previous symbol. Further, the last state of a symbol is identical to the first state if the bit to the transmitted is a logical ‘0’, and the last state of a symbol is different than to the first state if the bit is a logical ‘1’. Using bi-phase mark code assists in synchronization by ensuring that at least one transition occurs on a channel for every bit of data.

In some embodiments, standard control commands and data are converted into data packets for transmission on the single bit control bus, with the data packets identifying the types of commands and data being transmitted. In some embodiments, the protocol for the control bus is byte-oriented to address the bytes of standard protocol commands and data. In an example, the byte-oriented protocol may be used to align with both DDC and CEC for HDMI, which are also byte-oriented. In some embodiments, the start of each data packet is signaled by a clock (sync) pulse, followed by 2 bits of header, 1 control bit, 8 bits of data, and 1 bit of parity. There is further 1 bit for a received ACK (acknowledge). In this example, the byte structure provides a total of 13 bit times per byte transfer, followed by an ACK. The link layer interfaces to the translation layer, which in turn interfaces to the relevant control protocols, such as, in this example, DDC and CEC state machines for HDMI operations.

In some embodiments, upon power-on, a bus control logic enters a discovery and wake-enable phase in which the logic detects its connectivity and functionality. The bus control logic may then move to an arbitration phase to gain control of the bus, which is described in more detail below. Finally, in the active phase, data may be written from the initiator (the device gaining control of the bus) to the follower (the other device in the transaction). In some embodiments, an initiator may transmit multiple packets on the control bus after gaining control of the bus. In an example, if an initiator has transmitted a packet, a subsequent data packet from the same initiator may start immediately after the ACK from the follower.

In an embodiment, an existing connection may be utilized for the single-bit control bus, with a pad for the existing use being shared with the pad for the control bus. In one embodiment, a hot plug detection pad may be shared with a single bit-control bus pad. In an embodiment, the receiver and transmitter may be switchable to allow operation over the single-bit control bus while also operating within the parameters of the standard protocol. For example, for HDMI, there is a pull-up circuit for the transmitter and a pull-down circuit for the receiver on the control bus. In an embodiment, the pull-up and pull-down circuits are switchable (providing a choice between pull-up (or pull-down) and off) to support applications outside of the HDMI specification, such as the connection of a mobile device.

In some embodiments, a local oscillator is utilized to provide the necessary time base for either side of the bus, rather than utilizing a clock signal transmission. In an embodiment, a control bus implementation accommodates a broad range of time variation (such as, for example, 2× variation) in the local oscillator frequency, which may result from PVT (process, voltage, and temperature) variations in electronic circuits. Because multiple types of control signals are merged onto a single bus, a faster clock time is required. In a particular example, a local oscillator is divided down to provide a 1 us (1 MHz) timebase for the bit time for the transport of HDMI data. In an embodiment, this timebase is accurate to within ±40% in order to maintain the frequency variation within the 2× variation range.

In an embodiment, the inclusion of a mobile device provides two possible modes of operation, and each may utilize a different cable. In a first case, a mobile transmitting device is connected to a standard protocol, dual-mode receiving device. The receiving device thus would include a standard cable input that is adapted for use with the mobile device. In a second case, a mobile transmitting device may be coupled with another mobile device.

In a first example, when an HDMI-M transmitter and an HDMI-E dual-mode receiver are connected via a Type-M to Type-E cable (indicating a cable from an HDMI-M transmitter to an HDMI-E receiver), then both HDMI and USB protocols can be operational. In this example, the control bus initiates discovery on the receiver side, followed by hot plug detect on the transmitter side. The control bus is used to provide an ID assignment to the USB-OTG PHY (physical layer) on the transmitter side of the connection.

In a second example in which two HDMI-M devices are connected together, this may be done via a Type-M to Type-M cable (indicating a cable from a first HDMI-M device, a transmitting device, to a second HDMI-M device, a receiving device). In this instance, only the USB-OTG connection is operational. The control bus is not connected between the devices, and is only used to provide an ID assignment to the USB-OTG PHY on either side of the connection. In this example, the Type-M to Type-M cable would not physically have any wires connecting the TMDS clock, data, and control bus lines. However, one end of the cable would have its control bus pin shorted to GND, in the manner of a USB-OTG cable. Further, in this example the HDMI-M transmitter chip should provide an ID output to the USB PHY. This output would normally be driven high, even in low-power state. In an embodiment, the HDMI-M receiving chip does not need to provide an ID output to the USB PHY on the receiver side because the receiver device will always be configured as a host.

In some embodiments, the control bus is bi-directional and either device may gain control of the control bus for transmission. In an embodiment, the control bus may be implemented such that either device will obtain control if the other device is not competing, and such that one of the devices (generally the transmitter) will win the arbitration if both devices attempt to gain control of the control bus at approximately the same time.

In some embodiments, a potential initiator must first check if the line is busy. If the control bus has been idle (remaining high, in an example) for a certain time period the device may start arbitration. In one example, data transmission may be required to start from 6 to 9 bit times after arbitration is won. The initiator will start sending packets of data, each packet followed by an acknowledge (ACK) from the follower. Arbitration is needed if the bus has been idle for over a certain number of cycles.

In one implementation, to arbitrate, a transmitting device drives the bus low for 4 bit times. In contrast, a receiving device should drive the bus low for the 1^(st) bit time and high for the 2^(nd), 3^(rd), and 4^(th) bit times. In one implementation, to reduce the electrical contention between high and low driven simultaneously on the control bus by two devices, “drive high” refers to driving a signal high for a short time at the beginning of a bit time and then releasing the bus. In this implementation, the pull up resister on the control bus acts to pull up and maintain the high signal level unless there is a signal driven low by the other device on the bus. The receiver checks the state of the bus during the 2^(nd), 3^(rd) and 4^(th) bit times. Because the receiver drives high for a short time at the start of each bit time and then releases the bus, the bus becomes low if the transmitter drives the bus low to obtain the bus. If the receiver detects that the bus is low during the any of these bit times the receiver can conclude that it has lost the arbitration. The receiver and transmitter bit times can differ by a factor of 2 from each other, which is the reason for requiring the transmitter to drive the bus low for 4 bit times. If the transmitter is two times faster than the receiver, the receiver would still see the bus stay low during the 2^(nd) bit time.

In an embodiment, an initiator, after winning arbitration, should wait no more than a certain period (a maximum of 9 bit times) to send the SYNC pulse. If the follower does not see any activity for the time period (18 bit times after the end of arbitration, assuming the clocks could be up to two times different from each other) follower can assume that the initiator has given up the bus.

In an embodiment, if the transmitter and receiver arbitrate at about the same time, the transmitter always wins the arbitration. However, each side may be guaranteed to obtain the control bus in time if a limit on the number of packets one side can send before allowing the other side to take control of the bus (such as a maximum packet count of 24) is implemented. In an embodiment, this is a link-layer feature and is independent of any flow control that may be implemented in the translation layer.

In an embodiment, once an initiator completes a transaction, the initiator does not attempt a new transaction for a certain period, such as a time period of 6 bit times. This time period is utilized to allow the follower enough time for the follower to claim the bus for it is own transaction and became the initiator. In this example, the follower may be allowed to start a transaction 3 bit times after the final ACK. If it does so, it gains control of the bus and can send up to 24 packets. If the follower does not start a transaction within 6 bit times after the final ACK, the initiator can recover the bus and start its next set of 24 transactions beginning at the 6^(th) bit time. If neither the initiator nor the follower starts a transaction within 9 bit times after the final ACK, the bus becomes inactive. If the bus is inactive, either side needs to arbitrate to gain control of it. Because the initiator and the follower have timebases that may be different by a factor of 2×, during a bus turn-around the follower may be required to maintain its calibration to the timebase of the initiator for 9 bit times, until and unless it takes control of the bus in the 3^(rd) bit time.

In some embodiments, devices connected via a control bus engage in calibration using the control bus. In some embodiments the frequencies of the receiver and transmitter oscillator clocks may be vary by as much as two times, and thus a method of calibrating the follower's bit time based on the initiator may be implemented. The calibration is provided so that the following device is capable of sampling the received data at the appropriate point in the bit time.

In some embodiments, a sync pulse from the initiating device, such as the sync pulse provided at the beginning of a data packet, is used by the follower to calibrate the follower's bit time to the initiator. In some embodiments, this calibration may be updated at every subsequent transition on the control bus. In some embodiments, the sync pulse could have more than one bit time in order to increase calibration accuracy.

In some embodiments, because the duty cycle on a control bus (which may be engaged in bi-phase mark encoding) may tend to be skewed away from 50%, the follower may maintain separate calibrations for the high time and low time of the sync pulse. The edge timings may move due to spread-spectrum variation, and thus the follower may be required to average out these variations through use of the separate high and low signals.

FIG. 1 is an illustration of an embodiment of a transmitting device coupled with a receiving device. In this illustration, a transmitter 102 is coupled to a receiver 110 via a cable 120. In this illustration, the receiver 110 may be standard protocol device 112, which may include a dual mode HDMI receiving device. In some embodiments, the dual mode HDMI receiving device would be capable of communicating with both an HDMI transmitter and an HDMI-M transmitter. In some embodiments, the transmitter 102 may be one of multiple types of devices. In this illustration the transmitter may be a first type of transmitting device, shown as a standard protocol device 104, such as a HDMI transmitting device, or a second type of device, which is shown as a mobile protocol device 106. The mobile protocol device 106 may be an HDMI-M transmitting device, such as handheld or other mobile media device. In some embodiments, the cable 120 may be either a standard protocol cable 122 for the connection of protocol devices (such as an HDMI compatible cable), or a mobile protocol cable 124 (such as an HDMI-M compatible cable), including a single control cable and a power cable. In some embodiments, the receiver 110 utilizes the signals received on the cable 120 to discover a connection with the transmitter 102, and the transmitter utilizes the signals on the cable 120 to assist in establishing a connection, such as a hot plug connection, with the receiver 110.

In a particular implementation, a control bus may have an operating frequency of 1 MHz to enable transmission of multiple HDMI protocols. In the implementation, the control bus may include control of internal registers, providing reading and writing capability. For HDMI, the control bus provides a bridge to the DDC I2C interface and a bridge to the CEC interface, and is expandable to other future protocols. In an embodiment, the control bus may be able to work while the rest of the system is in power down mode. Because of the cooperative operations between the transmitter and the receiver, the system does not require calibration or interruption of the outside micro-controller, and utilizes a ring oscillator or external clock for timing. The system does not need to maintain bit-accurate timing for either DDC or CEC protocols.

FIG. 2 is a flowchart to illustrate an embodiment of a process for providing control signals between a transmitting device and a receiving device. In this illustration, a transmitter and a receiver are connected together 202. In some embodiments, the transmitter is a mobile protocol device and the receiver is a standard protocol device. The receiver may be a dual-mode device that is capable of communicating with both a standard protocol device and a mobile protocol device. In a particular embodiment, the transmitter is an HDMI-M protocol device, and the receiver is an HDMI protocol device. The transmitter and receiver are connected by a mobile protocol cable, such as a HDMI-M compatible cable. In an embodiment, the transmitter and receiver utilize a bi-directional, single-bit control bus. In an embodiment, the control bus is a bus utilizing bi-phase mark encoding.

In an embodiment, the transmitter and receiver engage in a discovery/hot plug process to identify each other, and initialize communication 204. In this instance, there is a determination that the receiving device is connected with a mobile device, and thus is utilizing a bi-directional, single-bit control bus. In an embodiment, the transmitter and receiver engage in an arbitration process to determine the ownership of the bus. The arbitration process may be the arbitration process illustrated in FIG. 3. In this instance, the transmitter wins the arbitration, and is the initiator of the transaction. In an embodiment, the transmitter, as initiator, provides a signal to the receiver to calibrate the clocks of the transmitter and receiver 208.

In some embodiments, multiple control signals are multiplexed onto the control bus 210. In an embodiment, the multiple control signals are subjected to an arbitration process to determine which control signal is placed on the control bus. In some embodiments, the control signals are converted from bytes of data to data packets that identify the type of data within each packet. In one particular example, HDMI control signals are multiplexed together on the control bus on a byte by byte basis. For example, CEC, DDC, and private channel instructions are multiplexed together on the control bus. If there is a control signal to be transmitted 212, the signal is converted into a data packet for transmission. In an embodiment, the data packet may be a data packet as shown in FIG. 8. The data packet is then transmitted from the transmitter to the receiver over the single-bit control bus 216. The process may continue as long as the transmitter has control signals to transmit, with the process then stopping 218.

For the receiver, one or more data packets containing command data may be received on the single-bit control bus 220. The receiver will read the header of each received data packet and determine the control type 222, and will handle each command as required under the standard protocol 224, such as, for example, HDMI.

FIG. 3 is an illustration of an arbitration process for a bidirectional, single-bit control bus. A transmitter and receiver are connected, with the connection including a bidirectional, single-bit bus 302. At some point in operation, either or both of the devices may wish to take control of the bus. In this process, there is determination of the status of the control bus 304. If it is determined that the CBUS is idle (having been unused for a certain number of cycles) or has been unused by the other device for a certain number of cycles (indicating that it is the device's turn to utilize the control bus) 306, then it is determined that the bus is still in use by the other device 308, then the use of the bus may be arbitrated 310. Otherwise, the device may determine that the control bus is in use by the other device. In an embodiment, if the transmitter and receiver seek to control the bus at approximately the same time, the transmitter will win the arbitration. If the transmitter seeks to control the bus, the transmitter will drive the bus low for a certain number of cycles (four cycles, in this example) 312, which will provide notice to the receiver that the transmitter is seeking control of the bus. The transmitter will then take control of the bus 314. If the receiver seeks control of the bus, then the receiver will drive the bus low for a cycle, and then drive the bus high for a short pulse 316. If the transmitter is not driving the bus, then the signal will stay high, and if the transmitter is driving the bus low the signal will go low. Based on this behavior, the receiver will check the signal on the CBUS during a certain period (during the second through fourth cycles in an example) 318. If the signal has remained high, this is an indication that the transmitter is not seeking control of the bus, and the receiver will take control 322. If the signal does not remain high, this is an indication that the transmitter is driving the signal low and is seeking control of the bus, and the transmitter again will take control 314.

FIG. 4 is an illustration of an embodiment of a mobile device coupled with a standard device via a control bus. In this illustration, a mobile HDMI transmitting device (HDMI-M TX board 410) is coupled with a dual-mode HDMI receiving device (HDMI-E RX board 430). The devices are coupled via a control bus/hot plug 402 (referred to herein as the CBUS), a 5 volt power source VBUS provided by the receiver 430 to the transmitter 410, and a USB connection 406. In some embodiments, the transmitter has a switchable pull-up circuit 414 (illustrated as part of the HDMI-M transmitter chip 412) and the receiver has a switchable pull-down circuit 436 (illustrated as part of the HDMI-E receiver chip 432) on the CBUS. Also illustrated is a series impedance 434 of receiver 430. The VBUS 404 is connected between a power/wake enable node 416 for the transmitter 410 and a power switch 438 for the receiver 430. The USB bus 406 is connected between a USB PHY (physical layer) 418 for the transmitter 410 and a USB PHY 440 for the receiver 430.

In an embodiment of the invention, the CBUS 402 is a bi-directional, single-bit control bus. In an embodiment, the CBUS operates utilizing bi-phase mark encoding. The CBUS is utilized to transport multiple different types of control signals between the transmitter 410 and the receiver 430, the control signals being multiplexed together for transmission. In an embodiment, either the transmitter 410 or the receiver 430 may take control of the CBUS 402, with the control of the CBUS being established by an arbitration process

FIG. 5 is an illustration of an embodiment of a connection between two mobile devices. In this illustration, a first mobile device 510 (a first HDMI-M side) may be connected to a second mobile device 530 (a second HDMI-M side). As these are mobile devices, both devices include a pull-up circuit 514 and 534. The devices are connected via a VBUS 504, which is not powered, and a USB connection 506. The devices may further include a TMDS (Transition Minimized Differential Signaling) bus 508. The USB bus 506 connects a first USB PHY 518 to a second USB PHY 540. However, the connection of the two mobile devices results in a disconnected control bus.

FIG. 6 illustrates an embodiment of a cable that may be utilized to connect a transmitter and a receiver. In this example, an HDMI cable 610 may include a clock channel, three data channels (Blue 616, Green 618, and Red 614), a DDC channel 622 (the DDC channel having two wires), and a CEC channel 620 (the CEC channel having a single wire). (The cable may include other lines, such as a +5V power signal line, a hot plug detect, and a USB data channel, which are not illustrated here.) However, in some embodiments the HDMI-M cable may utilize fewer lines because of the smaller device size, including a clock channel 632, a merged data channel 632, and a single-bit control channel 640. In some embodiments, the single-bit control channel is a bi-directional channel that is operated at an increased speed to include merged control data from both a transmitter and a receiver.

FIG. 7 is an illustration of an embodiment of cable signal assignments for transmitter and receiver. FIG. 7 illustrates a particular example of a cable connection implementation. In an embodiment, the assignments show the pins 710 for an HDMI-M device 720 that is connected to an HDMI device 730. In an embodiment, the HDMI device is a dual-mode device that is capable of communicating with both a standard HDMI device and an HDMI-M device. In this example, two of the data channels of the HDMI device 730 are not connected to HDMI-M device (pins 1-6), and thus the data is carried over the one data channel (pins 7-9). Further, the control data that would be transported via the DDC (pins 15-17, which lines are used for USB data) and CEC data are carried over the control bus (pin 19, which is used with the hot plug detect of the HDMI device)

FIG. 8 illustrates an embodiment of a data packet for transfer of control data. In an embodiment, control data from multiple sources is merged or multiplexed onto a single-bit control bus. In an embodiment, control data bytes are formed into data packets for transfer on the control bus. In an example, the data packet may be data packet 800. The fields contained in data packet 800 may vary in different embodiments. In this example, data packet 802 includes a 1-bit sync signal 802, followed by a 2-bit header 804 to indicate the type of data packet contained in the data packet 800 and a 1-bit control field 806 to indicate whether the data packet contains data or a command. The numbers of bits included in each field may vary in different implementations. In one example, the sync signal 802 may include more than one bit in order to increase calibration accuracy.

The header 804 and control field 806 may, for example, be encoded as provided in FIG. 9. The control field is followed by 8 bits of translation layer data or command 808. Following the data 808 is a parity bit 810. The parity covers both the header and the data, and even parity is used. The use of even parity then ensures that the bus has transitioned to a high level prior to start of an acknowledge ACK 812.

Thus, in an embodiment, a packet starts from a high state for the control bus (indicating an idle bus) with a sync pulse, and the control bus ends in a high state with an ACK. Aside from these two bits, there should be an even number of O's in the packet in order for the bus level to end up at a high state at the end. (In bi-phase mark encoding, as used here, the bus level at the end of a ‘1’ is the same as that at the beginning; the bus level at the end of a ‘0’ is the opposite of that at the beginning.) Because there is an even number of bits, an even number of ‘1’s are needed, and thus even parity.

FIG. 9 is an illustration of the header and control fields utilized in an embodiment of a control data packet. In a data packet carrying control data, such as the data packet 800 illustrated in FIG. 8, two bits of a header 910 may be utilized to indicate whether the data packet includes a DDC packet (header field ‘00’), a CEC packet (header field ‘01’), or private channel data for the control bus (header field ‘10’). In this illustration, header field ‘11’ is reserved for future uses. Further, a bit of a control field 920 may be utilized to indicate that the data bits (such as data 808 illustrated in FIG. 8) represent translation layer data (control field ‘0’) or a translation layer command (control field ‘1’).

In the description above, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form. There may be intermediate structure between illustrated components. The components described or illustrated herein may have additional inputs or outputs which are not illustrated or described.

Various embodiments of the present invention may include various processes. These processes may be performed by hardware components or may be embodied in computer program or machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the processes. Alternatively, the processes may be performed by a combination of hardware and software.

Portions of various embodiments of the present invention may be provided as a computer program product, which may include a computer-readable medium having stored thereon computer program instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the embodiments of the present invention. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, compact disk read-only memory (CD-ROM), and magneto-optical disks, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), magnet or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions. Moreover, the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer.

Many of the methods are described in their most basic form, but processes can be added to or deleted from any of the methods and information can be added or subtracted from any of the described messages without departing from the basic scope of the present invention. It will be apparent to those skilled in the art that many further modifications and adaptations can be made. The particular embodiments are not provided to limit the invention but to illustrate it. The scope of the embodiments of the present invention is not to be determined by the specific examples provided above but only by the claims below.

If it is said that an element “A” is coupled to or with element “B,” element A may be directly coupled to element B or be indirectly coupled through, for example, element C. When the specification or claims state that a component, feature, structure, process, or characteristic A “causes” a component, feature, structure, process, or characteristic B, it means that “A” is at least a partial cause of “B” but that there may also be at least one other component, feature, structure, process, or characteristic that assists in causing “B.” If the specification indicates that a component, feature, structure, process, or characteristic “may”, “might”, or “could” be included, that particular component, feature, structure, process, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, this does not mean there is only one of the described elements.

An embodiment is an implementation or example of the present invention. Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments. It should be appreciated that in the foregoing description of exemplary embodiments of the present invention, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims are hereby expressly incorporated into this description, with each claim standing on its own as a separate embodiment of this invention. 

1. A method comprising: coupling a transmitting device to a receiving device, coupling of the devices including connecting a control bus between the transmitting device and the receiving device, the control bus being a bi-directional, single-line bus; obtaining control of the control bus for either the transmitting device or the receiving device, the device obtaining control becoming an initiator and the other device becoming a follower; converting one or more control signals to one or more data packets, each of the one or more control signals representing one of a plurality of different types of control signals; and transmitting the generated data packets from the initiator to the follower via the control bus.
 2. The method of claim 1, wherein the signaling for the control bus utilizes bi-phase mark encoding.
 3. The method of claim 1, wherein obtaining control of the control bus includes arbitrating between the transmitting device and the control device for control of the control bus.
 4. The method of claim 3, wherein, for the transmitting device, arbitrating for control of the control bus includes: determining the control bus is idle or unused for a certain period; if the control bus is been idle or used, then sending a low signal for a first number of cycles; and after the conclusion of the first number of cycles, then taking control the control bus.
 5. The method of claim 3, wherein, for the receiving device, arbitrating for control of the control bus includes: determining the control bus is idle or unused for a certain period; if the control bus is idle or unused, then sending a low signal followed by a high signal for a first number of cycles; during the first number of cycles, checking a status of the control bus; if the status of the control bus is a high signal, taking control of the control bus.
 6. The method of claim 1, wherein the receiving device is a device utilizing a standard protocol and the transmitting device is a device utilizing a modified protocol.
 7. The method of claim 6, wherein the standard protocol is HDMI (High-Definition Multimedia Interface).
 8. The method of claim 6, wherein the receiving device is a dual-mode device that is capable of communicating with a device that is compatible with the standard protocol device or a device that is compatible with the modified protocol.
 9. The method of claim 6, wherein the plurality of different types of control signals would be transmitted over a plurality of control buses according to the standard protocol.
 10. The method of claim 1, wherein transmitting the data packets includes arbitrating between a plurality of requestors to place the data packets on the control bus.
 11. A transmitting device comprising: a connection to a single control bus, the control bus being a bi-directional, single-line bus, the transmitting device to be coupled with a receiving device via the control bus; logic to convert each of one or more control signals into a data packet, each of the one or more control signals being one of a plurality of different types of control signals; and a transmitter, the transmitter to transmit the data packets to the receiving device on the control bus.
 12. The transmitting device of claim 11, wherein the transmitter is to drive the control bus in a bi-phase mark signaling manner.
 13. The transmitting device of claim 11, wherein transmitting the one or more data packets includes transmitting a sync pulse to the receiving device to synchronize a clock of the receiving device to a clock of the transmitting device.
 14. The transmitting device of claim 11, further comprising a switchable pull-up circuit coupled with the control bus.
 15. The transmitting device of claim 11, further comprising logic to arbitrate use of the control bus with the receiving device.
 16. The transmitting device of claim 11, wherein the receiving device is a device utilizing a standard protocol and the transmitting device is a device utilizing a modified protocol.
 17. The transmitting device of claim 16, wherein the standard protocol is HDMI (High-Definition Multimedia Interface).
 18. The transmitting device of claim 11, further comprising a USB-OTG (Universal Serial Bus On-The-Go) PHY.
 19. A receiving device comprising: a connection to a single control bus, the control bus being a bi-directional, single-line bus, the receiving device to be coupled with a transmitting device via the control bus; a receiver to receive one or more data packets on the control bus, each of the one or more data packets representing one of a plurality of different types of control signals; and logic to convert each of the one or more data packets into a control signal.
 20. The receiving device of claim 19, wherein the receiver is to decode the one or more received data packets according to bi-phase mark encoding.
 21. The receiving device of claim 19, wherein the receiver is to receive a sync pulse from the receiving device, the receiving device to synchronize a clock of the receiving device to a clock of the transmitting device.
 22. The receiving device of claim 19, further comprising a switchable pull-down circuit coupled with the control bus.
 23. The receiving device of claim 19, further comprising logic to arbitrate use of the control bus with the transmitting device.
 24. The receiving device of claim 19, wherein the receiving device is a device utilizing a standard protocol and the transmitting device is a device utilizing a modified protocol.
 25. The receiving device of claim 24, wherein the standard protocol is HDMI (High-Definition Multimedia Interface).
 26. The receiving device of claim 24, wherein the receiving device is a dual-mode device that is capable of communicating with a standard protocol device or a modified protocol device. 